package cn.edu.gzgs.constant;

import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.Getter;

/**
 * 登录状态枚举。
 *
 * <p>持久化策略：使用 MyBatis-Plus 的 {@code MybatisEnumTypeHandler} 将枚举映射为数据库中的
 * VARCHAR 值，对应表字段 `login_log.login_status`。</p>
 *
 * <p>示例：{@code LoginStatus.SUCCESS} 持久化为字符串 "SUCCESS"。</p>
 *
 * @author Zyf
 */
@Getter
public enum LoginStatus {
    SUCCESS("SUCCESS", "登录成功"),
    FAILURE_USER_NOT_FOUND_OR_DISABLED("FAIL_NO_USER_OR_DISABLED", "用户不存在或已禁用"),
    FAILURE_PASSWORD_INCORRECT("FAIL_PASSWORD", "密码错误"),
    FAILURE_CAPTCHA("FAIL_CAPTCHA", "验证码错误"),
    FAILURE_UNKNOWN("FAIL_UNKNOWN", "其他未知失败");

    @EnumValue
    private final String value;

    private final String desc;

    LoginStatus(String value, String desc) {
        this.value = value;
        this.desc = desc;
    }
}